package liczbaP;

public class Liczba {
	private int liczbaNaturalna;
	private static int minimalnaPodstawa = 2;
	private static int maksymalnaPodstawa = 16;
	
	public Liczba()
	{
		liczbaNaturalna = 0;
	}
	public Liczba(int liczba) 
		throws IllegalArgumentException
	{
		zmienLiczbe(liczba);
	}
	public Liczba(String liczba)
		throws IllegalArgumentException, NumberFormatException
	{
		zmienLiczbe(liczba, 10);
	}
	public Liczba(String liczba, int podstawa)
		throws IllegalArgumentException, NumberFormatException
	{
		zmienLiczbe(liczba, podstawa);
		
	}
	public String konwertujLiczbe(int podstawa) throws
		IllegalArgumentException
	{
		if(minimalnaPodstawa > podstawa || maksymalnaPodstawa < podstawa)
			throw new IllegalArgumentException(
					String.format("Argument: %1 nie miesci sie w zakresie [%2;%3].", 
							podstawa, minimalnaPodstawa, maksymalnaPodstawa));
		
		return Integer.toString(liczbaNaturalna, podstawa);
	}
	public int liczbaNat()
	{
		return liczbaNaturalna;
	}
	public void zmienLiczbe(int liczba) throws IllegalArgumentException
	{
		if(liczba < 0)
			throw new IllegalArgumentException("Liczba musi byc nieujemna. Podano: " 
					+ Integer.toString(liczba));
		liczbaNaturalna = liczba;
	}
	public void zmienLiczbe(String liczba)
		throws IllegalArgumentException, NumberFormatException
	{
		zmienLiczbe(Integer.parseInt(liczba));
	}
	public void zmienLiczbe(String liczba, int podstawa)
		throws IllegalArgumentException, NumberFormatException
	{
		zmienLiczbe(Integer.parseInt(liczba, podstawa));
	}
	// some commen
}
